#include <stdio.h>

/**
 * 此程序演示getchar和scanf混用的时候会产生的问题。
 * 此程序的运行结果是：
Enter a character and two integers:
a
2
3
aaa
aaa
Enter another character and two integers;
Enter a newline to quit.
Bye.
 * 原因是scanf不会读入最后的回车，导致while循环第二次取到了scanf读入的最后一个回车，然后跳出循环。
 * 解决的办法是把while内的内层while打开。
 * 
*/


void display(char cr, int lines, int width);

int main(void)
{
    int ch;         /* 待打印字符 */
    int rows, cols; /* 行数和列数 */
    printf("Enter a character and two integers:\n");
    while ((ch = getchar()) != '\n')
    {
        scanf("%d %d", &rows, &cols);
        display(ch, rows, cols);
        printf("Enter another character and two integers;\n");
        printf("Enter a newline to quit.\n");
        // while (getchar() != '\n')
        // {
        //     continue;
        // }
        
    }
    printf("Bye.\n");
    return 0;
}

void display(char cr, int lines, int width)
{
    int row, col;
    for (row = 1; row <= lines; row++)
    {
        for (col = 1; col <= width; col++)
            putchar(cr);
        putchar('\n'); /* 结束一行并开始新的一行 */
    }
}